// Animation Manager
// Class that is supposed to load and store all the animation data for the game

#ifndef _ANIMATION_MANAGER_H_
#define _ANIMATION_MANAGER_H_

#include <vector>
using std::vector;

//#include "Animation.h"
class CAnimation;

class AnimationManager
{

	//////////////////////////////////////////////////////////////////////////
	//	------------------------------------------------------------------	//
	//							DATA	MEMBERS								//
	//	------------------------------------------------------------------	//
	//////////////////////////////////////////////////////////////////////////

	// Singleton's static instance
	static AnimationManager* sm_pInstance;
	
	vector<CAnimation*> m_vpAnimations;

	//////////////////////////////////////////////////////////////////////////
	//	------------------------------------------------------------------	//
	//							PRIVATE	FUNCTIONS							//
	//	------------------------------------------------------------------	//
	//////////////////////////////////////////////////////////////////////////

	// Default Constructor - Initialize all variables to safe values
	AnimationManager(void);

	// For a proper singleton, the trilogy needs to be defined
	AnimationManager(const AnimationManager&) {}				// Copy Constructor
	AnimationManager& operator=(const AnimationManager&) {}		// Assignment Operator
	~AnimationManager(void) {}								// Destructor

public:

	//////////////////////////////////////////////////////////////////////////
	//	------------------------------------------------------------------	//
	//							PUBLIC	FUNCTIONS							//
	//	------------------------------------------------------------------	//
	//////////////////////////////////////////////////////////////////////////

	// Used to access the singleton's instance
	static AnimationManager* GetInstance(void);

	// Used to delete the singleton's instance
	static void DeleteInstance(void);

	void Initialize(void);

	int LoadAnimation(const char* filename);
};


#endif // _ANIMATION_MANAGER_H_